翻訳と辞書
Words near each other
・ Foreign interactions with Europe
・ Foreign internal defense
・ Foreign Intrigue
・ Foreign Intrigue (film)
・ Foreign Investment and National Security Act of 2007
・ Foreign Investment and NRI Cell, Government of Haryana
・ Foreign Investment in Real Property Tax Act
・ Foreign investment in the United States real estate
・ Foreign Investment Promotion Board
・ Foreign Investment Review Agency
・ Foreign Investment Review Board
・ Foreign involvement in the 2006 Lebanon War
・ Foreign involvement in the Gaza War (2008–09)
・ Foreign involvement in the Spanish Civil War
・ Foreign involvement in the Syrian Civil War
Foreign key
・ Foreign Keys
・ Foreign Land
・ Foreign Land (film)
・ Foreign Land (novel)
・ Foreign Land (song)
・ Foreign language
・ Foreign Language Annals
・ Foreign language anxiety
・ Foreign Language Area Studies
・ Foreign Language Assistant
・ Foreign Language Bookshop
・ Foreign Language Centre of Lodz University of Technology
・ Foreign Language High School Affiliated to Shanghai University
・ Foreign language influences in English


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Foreign key : ウィキペディア英語版
Foreign key

In context of relational databases, a foreign key is a field (or collection of fields) in one table that uniquely identifies a row of another table. In simpler words, the foreign key is defined in a second table, but it refers to the primary key in the first table. For example, a table called Employee has a primary key called employee_id. Another table called Employee Details has a foreign key which references employee_id in order to uniquely identify the relationship between both the tables.
The table containing the foreign key is called the child table, and the table containing the candidate key is called the referenced or parent table. In database relational modeling and implementation, a unique key is a set of zero, one or more attributes, the value(s) of which are guaranteed to be unique for each tuple (row) in a relation. The value or combination of values of unique key attributes for any tuple cannot be duplicated for any other tuple in that relation.
When more than one column is combined to form a unique key, their combined value is used to access each row and maintain uniqueness. Values are not combined, they are compared using their data types.
Since the purpose of the foreign key is to identify a particular row of the referenced table, it is generally required that the foreign key is equal to the candidate key in some row of the primary table, or else have no value (the NULL value.〔). This rule is called a referential integrity constraint between the two tables.
Because violations of these constraints can be the source of many database problems, most database management systems provide mechanisms to ensure that every non-null foreign key corresponds to a row of the referenced table.
For example, consider a database with two tables: a CUSTOMER table that includes all customer data and an ORDER table that includes all customer orders. Suppose the business requires that each order must refer to a single customer. To reflect this in the database, a foreign key column is added to the ORDER table (e.g., CUSTOMERID), which references the primary key of CUSTOMER (e.g. ID). Because the primary key of a table must be unique, and because CUSTOMERID only contains values from that primary key field, we may assume that, when it has a value, CUSTOMERID will identify the particular customer which placed the order. However, this can no longer be assumed if the ORDER table is not kept up to date when rows of the CUSTOMER table are deleted or the ID column altered, and working with these tables may become more difficult. Many real world databases work around this problem by 'inactivating' rather than physically deleting master table foreign keys, or by complex update programs that modify all references to a foreign key when a change is needed.
Foreign keys play an essential role in database design. One important part of database design is making sure that relationships between real-world entities are reflected in the database by references, using foreign keys to refer from one table to another.
Another important part of database design is database normalization, in which tables are broken apart and foreign keys make it possible for them to be reconstructed.
Multiple rows in the referencing (or child) table may refer to the same row in the referenced (or parent) table. In this case, the relationship between the two tables is called a one to many relationship between the referenced table and the referencing table.
In addition, the child and parent table may, in fact, be the same table, i.e. the foreign key refers back to the same table. Such a foreign key is known in SQL:2003 as a self-referencing or recursive foreign key. In database management systems, this is often accomplished by linking a first and second reference to the same table.
A table may have multiple foreign keys, and each foreign key can have a different parent table. Each foreign key is enforced independently by the database system. Therefore, cascading relationships between tables can be established using foreign keys.
== Defining foreign keys ==
Foreign keys are defined in the ISO SQL Standard, through a FOREIGN KEY constraint. The syntax to add such a constraint to an existing table is defined in SQL:2003 as shown below. Omitting the column list in the REFERENCES clause implies that the foreign key shall reference the primary key of the referenced table.

ALTER TABLE
ADD (CONSTRAINT )
FOREIGN KEY ( )
REFERENCES
(( ... ) )
(ON UPDATE 〔 )
(ON DELETE 〔 )

Likewise, foreign keys can be defined as part of the CREATE TABLE SQL statement.

CREATE TABLE table_name (
id INTEGER PRIMARY KEY,
col2 CHARACTER VARYING(20),
col3 INTEGER,
...
FOREIGN KEY(col3)
REFERENCES other_table(key_col) ON DELETE CASCADE,
... )

If the foreign key is a single column only, the column can be marked as such using the following syntax:

CREATE TABLE table_name (
id INTEGER PRIMARY KEY,
col2 CHARACTER VARYING(20),
col3 INTEGER REFERENCES other_table(column_name),
... )

Foreign keys can be defined with a stored procedure statement.

sp_foreignkey tabname, pktabname, col1 (col2 ) ... (col8 )

*tabname: the name of the table or view that contains the foreign key to be defined.
*pktabname: the name of the table or view that has the primary key to which the foreign key applies. The primary key must already be defined.
*col1: the name of the first column that makes up the foreign key. The foreign key must have at least one column and can have a maximum of eight columns.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Foreign key」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.